#include <bits/stdc++.h>
#define int long long
using namespace std;
const int mod=147744151;
int n,m,p,s[1005][1005],inv[1005][1005],q,a,b,c,d,ans;
int read(){
    int s=0;
    char ch=getchar(),last=' ';
    while(ch<'0'||ch>'9')
        last=ch,ch=getchar();
    while(ch>='0'&&ch<='9')
        s=(s<<1)+(s<<3)+(ch^48),ch=getchar();
    return last=='-'?-s:s;
}
int power(int a,int b){
    int res=1;
    while(b){
        if(b&1)
            res=res*a%p;
        a=a*a%p;
        b>>=1;
    }
    return res;
}
signed main(){
    freopen("tsuki.in","r",stdin);
    freopen("tsuki.out","w",stdout);
    n=read(),m=read(),p=read();
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            s[i][j]=read();
    if(p==998244353){
        for(int i=0;i<=n;i++)
            s[0][i]=s[i][0]=1;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++){
                if(!inv[i-1][j-1])
                    inv[i-1][j-1]=power(s[i-1][j-1],p-2);
                s[i][j]=s[i-1][j]*s[i][j-1]%p*inv[i-1][j-1]%p*s[i][j]%p;
            }
        q=read();
        for(int i=1;i<=q;i++){
            a=read(),b=read(),c=read(),d=read();
            if(!inv[a-1][d])
                inv[a-1][d]=power(s[a-1][d],p-2);
            if(!inv[c][b-1])
                inv[c][b-1]=power(s[c][b-1],p-2);
            ans+=((s[c][d]*inv[a-1][d]%p*inv[c][b-1]%p*s[a-1][b-1]%p)^i);
            ans%=mod;
        }
    }
    else{
        q=read();
        for(int i=1;i<=q;i++){
            a=read(),b=read(),c=read(),d=read();
            int res=1;
            for(int x=a;x<=c;x++)
                for(int y=b;y<=d;y++)
                    res=res*s[x][y]%p;
            ans+=(res^i);
            ans%=mod;
        }
    }
    printf("%lld\n",ans);
    return 0;
}
